//
//  WBBaseViewController.swift
//  盈微博
//
//  Created by hoterzhang on 2018/1/20.
//  Copyright © 2018年 hoterzhang. All rights reserved.
//

import UIKit

class WBBaseViewController: UIViewController {
    
    //如果用户没登录 则不显示tableview 这里不能使用懒加载
    var tableView: UITableView?
    
    //自定义导航条bar
//    lazy var navigationBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: UIScreen.cz_screenWidth(), height: 64))
    lazy var navigationBar: UINavigationBar = UINavigationBar(frame: CGRect(
        x: (navigationController?.navigationBar.frame.origin.x)!,
        y: (navigationController?.navigationBar.frame.origin.y)!,
        width: (navigationController?.navigationBar.frame.size.width)!,
        height: 64))
    
    //自定义导航条目
    lazy var navItem = UINavigationItem()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupUI()
        loadData()
    }
    
    //重写title 的 didset
    override var title: String? {
        didSet {
            navItem.title = title
        }
    }
    
    // 加载数据 - 具体由子类实现
    func loadData() {
        
    }
    
    func setupUI() {
        view.backgroundColor = UIColor.cz_random()
        setupNavigationBar()
        setupTableView()
    }

}

// MARK: - 设置界面
extension WBBaseViewController {
    
    //设置导航条
    private func setupNavigationBar() {
        //添加导航
        view.addSubview(navigationBar)
        navigationBar.items = [navItem]
        //设置navbar的渲染颜色
        navigationBar.barTintColor = UIColor.cz_color(withHex: 0xF6F6F6)
        // 设置navbar的字体颜色NSAttributedStringKey.foregroundColor: UIColor.orange
        navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.darkGray]
    }
    
    //设置表格视图
    public func setupTableView(){
        tableView = UITableView(frame: view.bounds, style: .plain)
        view.insertSubview(tableView!, belowSubview: navigationBar) // 解决navigationbar不显示的问题
        //设置代理
        tableView?.dataSource = self
        tableView?.delegate = self
    }
}

// MARK: - UITableViewDataSource, UITableViewDelegate
extension WBBaseViewController:UITableViewDataSource, UITableViewDelegate {
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    // 基本准备方法，子类负责具体的实现， 不需要super
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
}
